From 44bb37b3bd8fff758b598436c26b4c4221d78285 Mon Sep 17 00:00:00 2001 From: Corey Farwell Date: Thu, 5 May 2016 19:07:36 -0400 Subject: [PATCH] Remove `String` ownership constraint, fewer allocations. --- src/cargo/core/package_id.rs | 2 +- src/cargo/core/resolver/encode.rs | 2 +- src/cargo/core/source.rs | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cargo/core/package_id.rs b/src/cargo/core/package_id.rs index 0d968aeee..bd3a66d94 100644 --- a/src/cargo/core/package_id.rs +++ b/src/cargo/core/package_id.rs @@ -44,7 +44,7 @@ impl Decodable for PackageId { let version = captures.at(2).unwrap(); let url = captures.at(3).unwrap(); let version = semver::Version::parse(version).ok().expect("invalid version"); - let source_id = SourceId::from_url(url.to_string()); + let source_id = SourceId::from_url(url); Ok(PackageId { inner: Arc::new(PackageIdInner { diff --git a/src/cargo/core/resolver/encode.rs b/src/cargo/core/resolver/encode.rs index f81d62093..6b3e3926f 100644 --- a/src/cargo/core/resolver/encode.rs +++ b/src/cargo/core/resolver/encode.rs @@ -181,7 +181,7 @@ impl Decodable for EncodablePackageId { let source = captures.at(3); - let source_id = source.map(|s| SourceId::from_url(s.to_string())); + let source_id = source.map(|s| SourceId::from_url(s)); Ok(EncodablePackageId { name: name.to_string(), diff --git a/src/cargo/core/source.rs b/src/cargo/core/source.rs index 0bef76dba..487e421ea 100644 --- a/src/cargo/core/source.rs +++ b/src/cargo/core/source.rs @@ -89,9 +89,9 @@ impl SourceId { /// use cargo::core::SourceId; /// SourceId::from_url("git+https://github.com/alexcrichton/\ /// libssh2-static-sys#80e71a3021618eb05\ - /// 656c58fb7c5ef5f12bc747f".to_string()); + /// 656c58fb7c5ef5f12bc747f"); /// ``` - pub fn from_url(string: String) -> SourceId { + pub fn from_url(string: &str) -> SourceId { let mut parts = string.splitn(2, '+'); let kind = parts.next().unwrap(); let url = parts.next().unwrap(); @@ -268,7 +268,7 @@ impl Encodable for SourceId { impl Decodable for SourceId { fn decode(d: &mut D) -> Result { let string: String = Decodable::decode(d).ok().expect("Invalid encoded SourceId"); - Ok(SourceId::from_url(string)) + Ok(SourceId::from_url(&string)) } } -- 2.30.2